﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Legend.Component.Common;

namespace Legend.Component.Interface
{
    public interface IState
    {
        int ActivationTime
        {
            get;
        }
        int Duration
        {
            get;
        }
        int Pulse
        {
            get;
        }
        void OnActivated();
        void OnDeactivated();
        void OnPulse(int elapsedTime);
    }

    public interface IStateManager : IUpdatable
    {
        void AddState<T>(T state) where T : IState;
        void Clear();
        bool FindState<T>();
    }
}
